토큰화(Tokenization) 심층 분석

토큰화(Tokenization)는 텍스트를 AI 모델이 처리할 수 있는 의미 있는 작은 단위인 토큰(token)으로 나누는 과정입니다.
단순히 띄어쓰기로 나누는 것을 넘어, 현대 NLP에서는 OOV 문제를 해결하는 서브워드(Subword) 방식이 표준으로 사용됩니다.

단어 토큰화의 한계와 서브워드의 등장

기존의 단어 단위(띄어쓰기 기준) 처리 방식은
OOV(Out-of-Vocabulary, 어휘집에 없는 단어) 문제에 취약했습니다.

대표적인 알고리즘

이 똑똑한 '단어 쪼개기'는 주로 아래 세 가지 알고리즘을 통해 이루어집니다.
이 중 가장 대표적이고 기본이 되는 BPE 알고리즘의 작동 방식을 자세히 살펴보겠습니다.

BPE
(Byte Pair Encoding)

글자 단위에서 시작해 가장 자주 함께 나오는 글자 쌍을 합쳐 하나의 토큰으로 만드는 과정을 반복

WordPiece

BPE와 유사하지만, 빈도수가 아닌 '의미를 가장 잘 보존할 가능성(Likelihood)'이 높은 쌍을 병합 (BERT에서 사용)

SentencePiece

띄어쓰기까지 하나의 문자로 취급하여 언어에 구애받지 않고 토큰화를 수행

알고리즘 상세 분석: BPE (Byte-Pair Encoding)

BPE는 어떻게 최적의 서브워드 어휘집(Vocabulary)을 만들까요?
low lowest newest 라는 텍스트를 예시로 학습 과정을 살펴보겠습니다.

1

1단계: 준비 (Initialization)

먼저 모든 단어를 글자(character) 단위로 분해하고,
단어의 끝을 의미하는 특수 기호 </w>를 추가합니다.
이 시점의 어휘집은 텍스트에 존재하는 모든 기본 글자들입니다.

2

2단계: 반복 병합 (Iterative Merging)

텍스트 전체에서 가장 자주 나타나는 인접한 토큰 쌍을 찾아
새로운 토큰으로 병합하고 어휘집에 추가합니다.
이 과정을 정해진 횟수만큼 반복합니다.

장점과 단점

장점

  • OOV 문제 해결
    모르는 단어를 크게 줄여 모델의 이해력을 높입니다.
  • 효율적인 어휘 관리
    적은 수의 서브워드로 무한한 단어를 표현할 수 있습니다.
  • 신조어 및 오타 대응
    '핵인싸' 같은 단어도 '핵'+'##인싸' 등으로 분리해 의미를 추론합니다.
  • 다양한 언어 적용
    특히 조사와 어미가 발달한 한국어('챗봇'+'##이란')에 효과적입니다.

단점

  • 고유 의미 손실
    '해바라기'가 '해'+'##바라기'로 나뉘면, 'sunflower'라는 고유한 의미가 약해질 수 있습니다.
  • 비직관적 분리
    'algorithm'이 'al'+'##go'+'##rithm'처럼 통계에만 의존해 의미 없는 조각으로 나뉠 수 있습니다.
  • 시퀀스 길이 증가
    한 단어가 여러 토큰이 되므로 처리 속도가 느려지고, 모델의 최대 입력 길이에 제약이 생길 수 있습니다.

이러한 단점들에도 불구하고, OOV 문제를 해결하는 이점이 워낙 막강하기 때문에
현대 NLP 모델들은 서브워드 방식을 표준으로 채택하고 있습니다.